Micron Document
🎖️GitЯра🎖️


Displaying Raw • Download

examples/simple_room_server/MyMesh.h a7426de0bf938c089531e5e2b2177d989fbc07e7 (a7426de0) Text, 7.04 KB

Tff7b72#Tff7b72pragma once

Tff7b72#Tff7b72include T8b949e<Arduino.h> T8b949e// needed for PlatformIO
Tff7b72#Tff7b72include T8b949e<Mesh.h>

Tff7b72#Tff7b72if defined(NRF52_PLATFORM)
Tff7b72#Tff7b72include T8b949e<InternalFileSystem.h>
Tff7b72#Tff7b72elif defined(RP2040_PLATFORM)
Tff7b72#Tff7b72include T8b949e<LittleFS.h>
Tff7b72#Tff7b72elif defined(ESP32)
Tff7b72#Tff7b72include T8b949e<SPIFFS.h>
Tff7b72#Tff7b72endif

Tff7b72#Tff7b72include T8b949e<helpers/ArduinoHelpers.h>
Tff7b72#Tff7b72include T8b949e<helpers/StaticPoolPacketManager.h>
Tff7b72#Tff7b72include T8b949e<helpers/SimpleMeshTables.h>
Tff7b72#Tff7b72include T8b949e<helpers/IdentityStore.h>
Tff7b72#Tff7b72include T8b949e<helpers/AdvertDataHelpers.h>
Tff7b72#Tff7b72include T8b949e<helpers/TxtDataHelpers.h>
Tff7b72#Tff7b72include T8b949e<helpers/CommonCLI.h>
Tff7b72#Tff7b72include T8b949e<helpers/StatsFormatHelper.h>
Tff7b72#Tff7b72include T8b949e<helpers/ClientACL.h>
Tff7b72#Tff7b72include T8b949e<helpers/RegionMap.h>
Tff7b72#Tff7b72include T8b949e<RTClib.h>
Tff7b72#Tff7b72include T8b949e<target.h>

T8b949e/* ------------------------------ Config -------------------------------- */

Tff7b72#Tff7b72ifndef FIRMWARE_BUILD_DATE
Tff7b72#Tff7b72define FIRMWARE_BUILD_DATE "6 Jun 2026"
Tff7b72#Tff7b72endif

Tff7b72#Tff7b72ifndef FIRMWARE_VERSION
Tff7b72#Tff7b72define FIRMWARE_VERSION "v1.16.0"
Tff7b72#Tff7b72endif

Tff7b72#Tff7b72ifndef LORA_FREQ
Tff7b72#Tff7b72define LORA_FREQ 915.0
Tff7b72#Tff7b72endif
Tff7b72#Tff7b72ifndef LORA_BW
Tff7b72#Tff7b72define LORA_BW 250
Tff7b72#Tff7b72endif
Tff7b72#Tff7b72ifndef LORA_SF
Tff7b72#Tff7b72define LORA_SF 10
Tff7b72#Tff7b72endif
Tff7b72#Tff7b72ifndef LORA_CR
Tff7b72#Tff7b72define LORA_CR 5
Tff7b72#Tff7b72endif
Tff7b72#Tff7b72ifndef LORA_TX_POWER
Tff7b72#Tff7b72define LORA_TX_POWER 20
Tff7b72#Tff7b72endif

Tff7b72#Tff7b72ifndef ADVERT_NAME
Tff7b72#Tff7b72define ADVERT_NAME "Test BBS"
Tff7b72#Tff7b72endif
Tff7b72#Tff7b72ifndef ADVERT_LAT
Tff7b72#Tff7b72define ADVERT_LAT 0.0
Tff7b72#Tff7b72endif
Tff7b72#Tff7b72ifndef ADVERT_LON
Tff7b72#Tff7b72define ADVERT_LON 0.0
Tff7b72#Tff7b72endif

Tff7b72#Tff7b72ifndef ADMIN_PASSWORD
Tff7b72#Tff7b72define ADMIN_PASSWORD "password"
Tff7b72#Tff7b72endif

Tff7b72#Tff7b72ifndef MAX_UNSYNCED_POSTS
Tff7b72#Tff7b72define MAX_UNSYNCED_POSTS 32
Tff7b72#Tff7b72endif

Tff7b72#Tff7b72ifndef SERVER_RESPONSE_DELAY
Tff7b72#Tff7b72define SERVER_RESPONSE_DELAY 300
Tff7b72#Tff7b72endif

Tff7b72#Tff7b72ifndef TXT_ACK_DELAY
Tff7b72#Tff7b72define TXT_ACK_DELAY 200
Tff7b72#Tff7b72endif

Tff7b72#Tff7b72define FIRMWARE_ROLE "room_server"

Tff7b72#Tff7b72define PACKET_LOG_FILE "Tff7b72/Tff7b72packet_log"

Tff7b72#Tff7b72define MAX_POST_TEXT_LEN (160-9)

Tff7b72struct T56d364PostInfo Tb4b4b4{
Te6edf3meshTff7b72:Tff7b72:Te6edf3Identity Te6edf3authorTb4b4b4;
Tffa657uint32_t Te6edf3post_timestampTb4b4b4; T8b949e// by OUR clock
Tffa657char Te6edf3textTb4b4b4[Te6edf3MAX_POST_TEXT_LENTff7b72+T79c0ff1Tb4b4b4]Tb4b4b4;
Tb4b4b4}Tb4b4b4;

Te6edf3class Te6edf3MyMesh Tff7b72: Te6edf3public Te6edf3meshTff7b72:Tff7b72:Te6edf3MeshTb4b4b4, Te6edf3public Te6edf3CommonCLICallbacks Tb4b4b4{
Te6edf3FILESYSTEMTff7b72* Te6edf3_fsTb4b4b4;
Tffa657uint32_t Te6edf3last_millisTb4b4b4;
Tffa657uint64_t Te6edf3uptime_millisTb4b4b4;
Tffa657unsigned Tffa657long Te6edf3next_local_advertTb4b4b4, Te6edf3next_flood_advertTb4b4b4;
Tffa657bool Te6edf3_loggingTb4b4b4;
Tffa657bool Te6edf3region_load_activeTb4b4b4;
Te6edf3NodePrefs Te6edf3_prefsTb4b4b4;
Te6edf3TransportKeyStore Te6edf3key_storeTb4b4b4;
Te6edf3RegionMap Te6edf3region_mapTb4b4b4, Te6edf3temp_mapTb4b4b4;
Te6edf3ClientACL Te6edf3aclTb4b4b4;
Te6edf3CommonCLI Te6edf3_cliTb4b4b4;
Tffa657unsigned Tffa657long Te6edf3dirty_contacts_expiryTb4b4b4;
Tffa657uint8_t Te6edf3reply_dataTb4b4b4[Te6edf3MAX_PACKET_PAYLOADTb4b4b4]Tb4b4b4;
Tffa657unsigned Tffa657long Te6edf3next_pushTb4b4b4;
Tffa657uint16_t Te6edf3_num_postedTb4b4b4, Te6edf3_num_post_pushesTb4b4b4;
Tffa657int Te6edf3next_client_idxTb4b4b4; T8b949e// for round-robin polling
Tffa657int Te6edf3next_post_idxTb4b4b4;
Te6edf3PostInfo Te6edf3postsTb4b4b4[Te6edf3MAX_UNSYNCED_POSTSTb4b4b4]Tb4b4b4; T8b949e// cyclic queue
Te6edf3CayenneLPP Te6edf3telemetryTb4b4b4;
Te6edf3RegionEntryTff7b72* Te6edf3load_stackTb4b4b4[T79c0ff8Tb4b4b4]Tb4b4b4;
Te6edf3RegionEntryTff7b72* Te6edf3recv_pkt_regionTb4b4b4;
Te6edf3TransportKey Te6edf3default_scopeTb4b4b4;
Tffa657unsigned Tffa657long Te6edf3set_radio_atTb4b4b4, Te6edf3revert_radio_atTb4b4b4;
Tffa657float Te6edf3pending_freqTb4b4b4;
Tffa657float Te6edf3pending_bwTb4b4b4;
Tffa657uint8_t Te6edf3pending_sfTb4b4b4;
Tffa657uint8_t Te6edf3pending_crTb4b4b4;
Tffa657int Te6edf3matching_peer_indexesTb4b4b4[Te6edf3MAX_CLIENTSTb4b4b4]Tb4b4b4;

Tffa657void Td2a8ffaddPostTb4b4b4(Te6edf3ClientInfoTff7b72* Te6edf3clientTb4b4b4, Tff7b72const Tffa657charTff7b72* Te6edf3postDataTb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffpushPostToClientTb4b4b4(Te6edf3ClientInfoTff7b72* Te6edf3clientTb4b4b4, Te6edf3PostInfoTff7b72& Te6edf3postTb4b4b4)Tb4b4b4;
Tffa657uint8_t Td2a8ffgetUnsyncedCountTb4b4b4(Te6edf3ClientInfoTff7b72* Te6edf3clientTb4b4b4)Tb4b4b4;
Tffa657bool Td2a8ffprocessAckTb4b4b4(Tff7b72const Tffa657uint8_t Tff7b72*Te6edf3dataTb4b4b4)Tb4b4b4;
Te6edf3meshTff7b72:Tff7b72:Te6edf3PacketTff7b72* Td2a8ffcreateSelfAdvertTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3File Td2a8ffopenAppendTb4b4b4(Tff7b72const Tffa657charTff7b72* Te6edf3fnameTb4b4b4)Tb4b4b4;
Tffa657int Td2a8ffhandleRequestTb4b4b4(Te6edf3ClientInfoTff7b72* Te6edf3senderTb4b4b4, Tffa657uint32_t Te6edf3sender_timestampTb4b4b4, Tffa657uint8_tTff7b72* Te6edf3payloadTb4b4b4, Tffa657size_t Te6edf3payload_lenTb4b4b4)Tb4b4b4;

Te6edf3protectedTff7b72:
Tffa657float Te6edf3getAirtimeBudgetFactorTb4b4b4(Tb4b4b4) Tff7b72const Te6edf3override Tb4b4b4{
Tff7b72return Te6edf3_prefsTb4b4b4.Te6edf3airtime_factorTb4b4b4;
Tb4b4b4}

Tffa657void Te6edf3logRxRawTb4b4b4(Tffa657float Te6edf3snrTb4b4b4, Tffa657float Te6edf3rssiTb4b4b4, Tff7b72const Tffa657uint8_t Te6edf3rawTb4b4b4[Tb4b4b4]Tb4b4b4, Tffa657int Te6edf3lenTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657void Td2a8fflogRxTb4b4b4(Te6edf3meshTff7b72:Tff7b72:Te6edf3PacketTff7b72* Te6edf3pktTb4b4b4, Tffa657int Te6edf3lenTb4b4b4, Tffa657float Te6edf3scoreTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657void Td2a8fflogTxTb4b4b4(Te6edf3meshTff7b72:Tff7b72:Te6edf3PacketTff7b72* Te6edf3pktTb4b4b4, Tffa657int Te6edf3lenTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657void Td2a8fflogTxFailTb4b4b4(Te6edf3meshTff7b72:Tff7b72:Te6edf3PacketTff7b72* Te6edf3pktTb4b4b4, Tffa657int Te6edf3lenTb4b4b4) Te6edf3overrideTb4b4b4;

Tffa657int Td2a8ffcalcRxDelayTb4b4b4(Tffa657float Te6edf3scoreTb4b4b4, Tffa657uint32_t Te6edf3air_timeTb4b4b4) Tff7b72const Te6edf3overrideTb4b4b4;
Tff7b72const Tffa657charTff7b72* Td2a8ffgetLogDateTimeTb4b4b4(Tb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657uint32_t Td2a8ffgetRetransmitDelayTb4b4b4(Tff7b72const Te6edf3meshTff7b72:Tff7b72:Te6edf3PacketTff7b72* Te6edf3packetTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657uint32_t Td2a8ffgetDirectRetransmitDelayTb4b4b4(Tff7b72const Te6edf3meshTff7b72:Tff7b72:Te6edf3PacketTff7b72* Te6edf3packetTb4b4b4) Te6edf3overrideTb4b4b4;

Tffa657int Td2a8ffgetInterferenceThresholdTb4b4b4(Tb4b4b4) Tff7b72const Te6edf3override Tb4b4b4{
Tff7b72return Te6edf3_prefsTb4b4b4.Te6edf3interference_thresholdTb4b4b4;
Tb4b4b4}
Tffa657bool Td2a8ffgetCADEnabledTb4b4b4(Tb4b4b4) Tff7b72const Te6edf3override Tb4b4b4{
Tff7b72return Te6edf3_prefsTb4b4b4.Te6edf3cad_enabledTb4b4b4;
Tb4b4b4}
Tffa657int Td2a8ffgetAGCResetIntervalTb4b4b4(Tb4b4b4) Tff7b72const Te6edf3override Tb4b4b4{
Tff7b72return Tb4b4b4(Tb4b4b4(Tffa657intTb4b4b4)Te6edf3_prefsTb4b4b4.Te6edf3agc_reset_intervalTb4b4b4) Tff7b72* T79c0ff4000Tb4b4b4; T8b949e// milliseconds
Tb4b4b4}
Tffa657uint8_t Td2a8ffgetExtraAckTransmitCountTb4b4b4(Tb4b4b4) Tff7b72const Te6edf3override Tb4b4b4{
Tff7b72return Te6edf3_prefsTb4b4b4.Te6edf3multi_acksTb4b4b4;
Tb4b4b4}

Te6edf3meshTff7b72:Tff7b72:Te6edf3DispatcherAction Td2a8ffonRecvPacketTb4b4b4(Te6edf3meshTff7b72:Tff7b72:Te6edf3PacketTff7b72* Te6edf3pktTb4b4b4) Te6edf3overrideTb4b4b4;

Tffa657bool Td2a8ffallowPacketForwardTb4b4b4(Tff7b72const Te6edf3meshTff7b72:Tff7b72:Te6edf3PacketTff7b72* Te6edf3packetTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657void Td2a8ffonAnonDataRecvTb4b4b4(Te6edf3meshTff7b72:Tff7b72:Te6edf3PacketTff7b72* Te6edf3packetTb4b4b4, Tff7b72const Tffa657uint8_tTff7b72* Te6edf3secretTb4b4b4, Tff7b72const Te6edf3meshTff7b72:Tff7b72:Te6edf3IdentityTff7b72& Te6edf3senderTb4b4b4, Tffa657uint8_tTff7b72* Te6edf3dataTb4b4b4, Tffa657size_t Te6edf3lenTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657int Td2a8ffsearchPeersByHashTb4b4b4(Tff7b72const Tffa657uint8_tTff7b72* Te6edf3hashTb4b4b4) Te6edf3override Tb4b4b4;
Tffa657void Td2a8ffgetPeerSharedSecretTb4b4b4(Tffa657uint8_tTff7b72* Te6edf3dest_secretTb4b4b4, Tffa657int Te6edf3peer_idxTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657void Td2a8ffonPeerDataRecvTb4b4b4(Te6edf3meshTff7b72:Tff7b72:Te6edf3PacketTff7b72* Te6edf3packetTb4b4b4, Tffa657uint8_t Te6edf3typeTb4b4b4, Tffa657int Te6edf3sender_idxTb4b4b4, Tff7b72const Tffa657uint8_tTff7b72* Te6edf3secretTb4b4b4, Tffa657uint8_tTff7b72* Te6edf3dataTb4b4b4, Tffa657size_t Te6edf3lenTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657bool Td2a8ffonPeerPathRecvTb4b4b4(Te6edf3meshTff7b72:Tff7b72:Te6edf3PacketTff7b72* Te6edf3packetTb4b4b4, Tffa657int Te6edf3sender_idxTb4b4b4, Tff7b72const Tffa657uint8_tTff7b72* Te6edf3secretTb4b4b4, Tffa657uint8_tTff7b72* Te6edf3pathTb4b4b4, Tffa657uint8_t Te6edf3path_lenTb4b4b4, Tffa657uint8_t Te6edf3extra_typeTb4b4b4, Tffa657uint8_tTff7b72* Te6edf3extraTb4b4b4, Tffa657uint8_t Te6edf3extra_lenTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657void Td2a8ffonAckRecvTb4b4b4(Te6edf3meshTff7b72:Tff7b72:Te6edf3PacketTff7b72* Te6edf3packetTb4b4b4, Tffa657uint32_t Te6edf3ack_crcTb4b4b4) Te6edf3overrideTb4b4b4;

Tff7b72#Tff7b72if ENV_INCLUDE_GPS == 1
Tffa657void Td2a8ffapplyGpsPrefsTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3sensorsTb4b4b4.Te6edf3setSettingValueTb4b4b4(Ta5d6ff"Ta5d6ffgpsTa5d6ff"Tb4b4b4, Te6edf3_prefsTb4b4b4.Te6edf3gps_enabledTff7b72?Ta5d6ff"Ta5d6ff1Ta5d6ff"Tff7b72:Ta5d6ff"Ta5d6ff0Ta5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72#Tff7b72endif

Tffa657void Td2a8ffsendFloodReplyTb4b4b4(Te6edf3meshTff7b72:Tff7b72:Te6edf3PacketTff7b72* Te6edf3packetTb4b4b4, Tffa657unsigned Tffa657long Te6edf3delay_millisTb4b4b4, Tffa657uint8_t Te6edf3path_hash_sizeTb4b4b4)Tb4b4b4;

Te6edf3publicTff7b72:
Te6edf3MyMeshTb4b4b4(Te6edf3meshTff7b72:Tff7b72:Te6edf3MainBoardTff7b72& Te6edf3boardTb4b4b4, Te6edf3meshTff7b72:Tff7b72:Te6edf3RadioTff7b72& Te6edf3radioTb4b4b4, Te6edf3meshTff7b72:Tff7b72:Te6edf3MillisecondClockTff7b72& Te6edf3msTb4b4b4, Te6edf3meshTff7b72:Tff7b72:Te6edf3RNGTff7b72& Te6edf3rngTb4b4b4, Te6edf3meshTff7b72:Tff7b72:Te6edf3RTCClockTff7b72& Te6edf3rtcTb4b4b4, Te6edf3meshTff7b72:Tff7b72:Te6edf3MeshTablesTff7b72& Te6edf3tablesTb4b4b4)Tb4b4b4;

Tffa657void Td2a8ffbeginTb4b4b4(Te6edf3FILESYSTEMTff7b72* Te6edf3fsTb4b4b4)Tb4b4b4;

Tff7b72const Tffa657charTff7b72* Td2a8ffgetFirmwareVerTb4b4b4(Tb4b4b4) Te6edf3override Tb4b4b4{ Tff7b72return Te6edf3FIRMWARE_VERSIONTb4b4b4; Tb4b4b4}
Tff7b72const Tffa657charTff7b72* Td2a8ffgetBuildDateTb4b4b4(Tb4b4b4) Te6edf3override Tb4b4b4{ Tff7b72return Te6edf3FIRMWARE_BUILD_DATETb4b4b4; Tb4b4b4}
Tff7b72const Tffa657charTff7b72* Td2a8ffgetRoleTb4b4b4(Tb4b4b4) Te6edf3override Tb4b4b4{ Tff7b72return Te6edf3FIRMWARE_ROLETb4b4b4; Tb4b4b4}
Tff7b72const Tffa657charTff7b72* Td2a8ffgetNodeNameTb4b4b4(Tb4b4b4) Tb4b4b4{ Tff7b72return Te6edf3_prefsTb4b4b4.Te6edf3node_nameTb4b4b4; Tb4b4b4}
Te6edf3NodePrefsTff7b72* Td2a8ffgetNodePrefsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72&Te6edf3_prefsTb4b4b4;
Tb4b4b4}

Tffa657void Td2a8ffsavePrefsTb4b4b4(Tb4b4b4) Te6edf3override Tb4b4b4{
Te6edf3_cliTb4b4b4.Te6edf3savePrefsTb4b4b4(Te6edf3_fsTb4b4b4)Tb4b4b4;
Tb4b4b4}

Tffa657void Td2a8ffsendFloodScopedTb4b4b4(Tff7b72const Te6edf3TransportKeyTff7b72& Te6edf3scopeTb4b4b4, Te6edf3meshTff7b72:Tff7b72:Te6edf3PacketTff7b72* Te6edf3pktTb4b4b4, Tffa657uint32_t Te6edf3delay_millisTb4b4b4, Tffa657uint8_t Te6edf3path_hash_sizeTb4b4b4)Tb4b4b4;

T8b949e// CommonCLICallbacks
Tffa657void Td2a8ffapplyTempRadioParamsTb4b4b4(Tffa657float Te6edf3freqTb4b4b4, Tffa657float Te6edf3bwTb4b4b4, Tffa657uint8_t Te6edf3sfTb4b4b4, Tffa657uint8_t Te6edf3crTb4b4b4, Tffa657int Te6edf3timeout_minsTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657bool Td2a8ffformatFileSystemTb4b4b4(Tb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657void Td2a8ffsendSelfAdvertisementTb4b4b4(Tffa657int Te6edf3delay_millisTb4b4b4, Tffa657bool Te6edf3floodTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657void Td2a8ffupdateAdvertTimerTb4b4b4(Tb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657void Td2a8ffupdateFloodAdvertTimerTb4b4b4(Tb4b4b4) Te6edf3overrideTb4b4b4;

Tffa657void Td2a8ffsetLoggingOnTb4b4b4(Tffa657bool Te6edf3enableTb4b4b4) Te6edf3override Tb4b4b4{ Te6edf3_logging Tff7b72= Te6edf3enableTb4b4b4; Tb4b4b4}

Tffa657void Td2a8fferaseLogFileTb4b4b4(Tb4b4b4) Te6edf3override Tb4b4b4{
Te6edf3_fsTff7b72-Tff7b72>Te6edf3removeTb4b4b4(Te6edf3PACKET_LOG_FILETb4b4b4)Tb4b4b4;
Tb4b4b4}

Tffa657void Td2a8ffdumpLogFileTb4b4b4(Tb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657void Td2a8ffsetTxPowerTb4b4b4(Tffa657int8_t Te6edf3power_dbmTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657bool Td2a8ffsetRxBoostedGainTb4b4b4(Tffa657bool Te6edf3enableTb4b4b4) Te6edf3overrideTb4b4b4;

Tffa657void Td2a8ffformatNeighborsReplyTb4b4b4(Tffa657char Tff7b72*Te6edf3replyTb4b4b4) Te6edf3override Tb4b4b4{
Te6edf3strcpyTb4b4b4(Te6edf3replyTb4b4b4, Ta5d6ff"Ta5d6ffnot supportedTa5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tffa657void Td2a8ffformatStatsReplyTb4b4b4(Tffa657char Tff7b72*Te6edf3replyTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657void Td2a8ffformatRadioStatsReplyTb4b4b4(Tffa657char Tff7b72*Te6edf3replyTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657void Td2a8ffformatPacketStatsReplyTb4b4b4(Tffa657char Tff7b72*Te6edf3replyTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657void Td2a8ffstartRegionsLoadTb4b4b4(Tb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657bool Td2a8ffsaveRegionsTb4b4b4(Tb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657void Td2a8ffonDefaultRegionChangedTb4b4b4(Tff7b72const Te6edf3RegionEntryTff7b72* Te6edf3rTb4b4b4) Te6edf3overrideTb4b4b4;

Te6edf3meshTff7b72:Tff7b72:Te6edf3LocalIdentityTff7b72& Td2a8ffgetSelfIdTb4b4b4(Tb4b4b4) Te6edf3override Tb4b4b4{ Tff7b72return Te6edf3self_idTb4b4b4; Tb4b4b4}

Tff7b72static Tffa657bool Td2a8ffsaveFilterTb4b4b4(Te6edf3ClientInfoTff7b72* Te6edf3clientTb4b4b4)Tb4b4b4;

Tffa657void Td2a8ffsaveIdentityTb4b4b4(Tff7b72const Te6edf3meshTff7b72:Tff7b72:Te6edf3LocalIdentityTff7b72& Te6edf3new_idTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657void Td2a8ffclearStatsTb4b4b4(Tb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657void Td2a8ffhandleCommandTb4b4b4(Tffa657uint32_t Te6edf3sender_timestampTb4b4b4, Tffa657charTff7b72* Te6edf3commandTb4b4b4, Tffa657charTff7b72* Te6edf3replyTb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffloopTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;

Served by rngit 1.5.4 - Generated in 0.06s